package ru.mcfr.oxygen.framework.operations.table;

import ro.sync.ecss.extensions.api.*;

public class ChangeTableOperation implements AuthorOperation {


    public void doOperation(AuthorAccess authorAccess, ArgumentsMap args)
            throws IllegalArgumentException, AuthorOperationException {
        //get table full xml fragment
//		int caretOffset = authorAccess.getEditorAccess().getCaretOffset();
//		AuthorDocumentController controller = authorAccess.getDocumentController();
//		String xmlTable = "";
//		String xmlCaretPosition = "";
//		try {
//			AuthorNode tableNode = controller.getNodeAtOffset(caretOffset);
//			AuthorDocumentFragment caretPositionFragment = controller.createDocumentFragment(tableNode, true);
//			xmlCaretPosition = controller.serializeFragmentToXML(caretPositionFragment);
//			AuthorNode chelnok = tableNode;
//			while (chelnok.getName() != "таблица"){
//				chelnok = chelnok.getParent();
//				if (chelnok == null) return;
//			}
//			
//			AuthorElement ae = (AuthorElement) chelnok;
//			
//			AuthorDocumentFragment fragment = controller.createDocumentFragment(chelnok, true);
//			xmlTable = controller.serializeFragmentToXML(fragment);
//			authorAccess.getWorkspaceAccess().showInformationMessage(xmlTable);
//		} catch (BadLocationException e) {
//			// TODO Auto-generated catch block
//			e.printStackTrace();
//		}
//		if (xmlTable == "") return;

        //change xml fragment


    }


    public ArgumentDescriptor[] getArguments() {
        ArgumentDescriptor[] res = {
                new ArgumentDescriptor("атрибуты", ArgumentDescriptor.TYPE_STRING, "атрибуты таблицы и ее частей"),
                new ArgumentDescriptor("значения", ArgumentDescriptor.TYPE_STRING, "значения атрибутов")
        };
        return res;
    }


    public String getDescription() {
        // TODO Auto-generated method stub
        return "Вставка/удаление строк/колонок таблицы";
    }

}
